2fac493eb65c2be74eb24be2171a02496afb18f3,uportal-war/src/main/java/org/jasig/portal/jpa/OpenEntityManagerAspect.java,OpenEntityManagerAspect,openEntityManager,#ProceedingJoinPoint#OpenEntityManager#,75
Before Change
EntityManagerFactory emf = lookupEntityManagerFactory(openEntityManager);
boolean participate = false;
if (TransactionSynchronizationManager.hasResource(emf)) {
// Do not modify the EntityManager: just set the participate flag.
participate = true;
}
else {
logger.debug("Opening JPA EntityManager in OpenEntityManagerAspect");
try {
EntityManager em = createEntityManager(emf);
TransactionSynchronizationManager.bindResource(emf, new EntityManagerHolder(em));
}
catch (PersistenceException ex) {
throw new DataAccessResourceFailureException("Could not create JPA EntityManager", ex);
}
}
After Change
public Object openEntityManager(ProceedingJoinPoint pjp, OpenEntityManager openEntityManager) throws Throwable {
final EntityManagerFactory emf = getEntityManagerFactory(openEntityManager);
EntityManager em = getTransactionalEntityManager(emf);
boolean isNewEm = false;
if (em == null) {
logger.debug("Opening JPA EntityManager in OpenEntityManagerAspect");
em = createEntityManager(emf);
isNewEm = true;
TransactionSynchronizationManager.bindResource(emf, new EntityManagerHolder(em));
}
else {
logger.debug("Using Existing JPA EntityManager in OpenEntityManagerAspect");
}
try {
return pjp.proceed();